package com.icinfo.cloud.provider.punish.ucase.punishinform.service;


import com.icinfo.cloud.provider.peripheralinterface.lawenforce.dto.CaseBaseInfoSaveDto;
import com.icinfo.cloud.provider.punish.ucase.punishinform.dto.CriminalCaseTransferQueryDto;
import com.icinfo.cloud.provider.punish.ucase.punishinform.dto.CriminalCaseTransferSaveDto;
import com.icinfo.cloud.provider.punish.ucase.punishinform.vo.CaseCriminalTransferFileVo;
import com.icinfo.cloud.provider.punish.ucase.punishinform.vo.CaseCriminalTransferInfoVo;
import com.icinfo.cloud.provider.punish.ucase.punishinform.vo.PunishInformFormVo;
import com.icinfo.framework.core.service.BaseService;

import java.util.List;

/**
 * 描述:  涉刑移送对应的Service接口.<br>
 * @author shishengyao
 * @description
 * @date 2022/9/27
 */
public interface ICaseCriminalTransferService extends BaseService {
    /**
     * 获取涉刑移送单数据
     *
     * @param queryDto 查询dto
     * @return {@link PunishInformFormVo }
     * @author shishengyao
     * @date 2022/09/27
     */
    CaseCriminalTransferInfoVo getCriminalCaseTransferInfo(CriminalCaseTransferQueryDto queryDto);

    /**
     * 保存涉刑移送表单数据
     *
     * @param criminalCaseTransferSaveDto 涉刑移送表单保存dto
     * @return int
     * @author shishengyao
     * @date 2022/09/27
     */
    int saveCriminalCaseTransfer(CriminalCaseTransferSaveDto criminalCaseTransferSaveDto);

    /**
     *
     *描述： 获取涉刑案件移送文书列表
     * @param queryDto 查询dto
     * @return {@link List< CaseCriminalTransferFileVo > }
     * @author shishengyao
     * @date 2022/09/29
     */
    List<CaseCriminalTransferFileVo> getCriminalCaseTransferDocumentList(CriminalCaseTransferQueryDto queryDto);

    /**
     * 描述： 根据caseId获取证据列表
     *
     * @param queryDto 查询dto
     * @return {@link List< CaseCriminalTransferFileVo > }
     * @author shishengyao
     * @date 2022/10/10
     */
    List<CaseCriminalTransferFileVo> getCriminalCaseTransferEvidenceList(CriminalCaseTransferQueryDto queryDto);

    /**
     * 更新移送证据及移送文书号
     *
     * @param caseBaseInfoDto
     * @return
     */
    int updateCaseMainDetailInfoCriminal(CaseBaseInfoSaveDto caseBaseInfoDto);
}
